Today, many companies perform business-related activities on computer systems, networks, or the like, which can range from a single computer for a small company to a hierarchy of servers and a plurality of user computer nodes for a large corporation. Business-related activities create the backbone of a company's information technology (IT) operation, and can include almost any computer use, from sending and receiving emails, to creating and storing documents, hosting web sites, facilitating online transactions, or the like. Therefore, any system errors or failures that are not quickly detected and resolved can percolate throughout the system and can cause great financial hardship to a company. Thus, it is desirable that troubleshooting system errors be fast and efficient. Similarly, a company may want to monitor the performance of its computer systems and networks to prevent errors from occurring, as well as to look for inefficiencies in its system for improvement.
Troubleshooting errors and monitoring system performance generally involves analyzing large amounts of data. As noted above, the financial hardship caused by a system error can sometimes increase as the time to detect and resolve the error increases. Thus, it may be beneficial to monitor data for changes at or near real time to minimize any impacts caused by an error. However, near real time monitoring can be difficult, especially as the amount of data increases. Generally, the more data to be monitored, the longer it may take to check all of the data. In some instances, latency between checks may exponentially increase with an increase in the amount of data that is being monitored. Thus, it is with respect to these considerations and others that the present invention has been made.